/**
 * ZHU framework. Copyright 2012-, all rights reserved.
 *
 * $Id: Menu.java 47 2012-09-20 06:31:35Z zhuxiaopeng $
 * $Revision: 47 $
 * $Date: 2012-09-20 14:31:35 +0800 (四, 2012-09-20) $
 * $Author: zhuxiaopeng $
 */
package daily.entity;

import javax.persistence.*;
import javax.persistence.Entity;

import zhu.framework.entity.*;

/**
 * <p>
 * </p>
 * 
 * @author $Author: zhuxiaopeng $
 * @version $Revision: 47 $ - $Date: 2012-09-20 14:31:35 +0800 (四, 2012-09-20) $
 */
@Entity
@Table
public class Menu extends AbstractEntityWithLongId {

	/**
	 * <h3>スレッドセーフ性</h3>
	 * <p>
	 * この変数は<code>this</code>によってGuardされる。 この変数は<code>final</code>
	 * であり、参照先がスレッドセーフであるため、スレッドセーフ性を破ることはない。
	 * この変数の参照先はスレッドセーフ<strong>ではない</strong>。
	 * </p>
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * <p>
	 * プロパティ<code>explanation</code>の値を取得する。
	 * </p>
	 * 
	 * @return プロパティ<code>explanation</code>の値
	 */
	public String getExplanation() {
		return explanation;
	}

	/**
	 * <p>
	 * プロパティ<code>explanation</code>の値を設定する。
	 * </p>
	 * 
	 * @param explanation
	 *            プロパティ<code>explanation</code>に設定する値
	 */
	public void setExplanation(final String explanation) {
		this.explanation = explanation;
	}

	/**
	 * <p>
	 * プロパティ<code>defaultPage</code>の値を取得する。
	 * </p>
	 * 
	 * @return プロパティ<code>defaultPage</code>の値
	 */
	public String getDefaultPage() {
		return defaultPage;
	}

	/**
	 * <p>
	 * プロパティ<code>defaultPage</code>の値を設定する。
	 * </p>
	 * 
	 * @param defaultPage
	 *            プロパティ<code>defaultPage</code>に設定する値
	 */
	public void setDefaultPage(final String defaultPage) {
		this.defaultPage = defaultPage;
	}

	/**
	 * <p>
	 * プロパティ<code>used</code>の値を取得する。
	 * </p>
	 * 
	 * @return プロパティ<code>used</code>の値
	 */
	public boolean isUsed() {
		return used;
	}

	/**
	 * <p>
	 * プロパティ<code>used</code>の値を設定する。
	 * </p>
	 * 
	 * @param used
	 *            プロパティ<code>used</code>に設定する値
	 */
	public void setUsed(final boolean used) {
		this.used = used;
	}

	/**
	 * <p>
	 * プロパティ<code>index</code>の値を取得する。
	 * </p>
	 * 
	 * @return プロパティ<code>index</code>の値
	 */
	public int getIndex() {
		return index;
	}

	/**
	 * <p>
	 * プロパティ<code>index</code>の値を設定する。
	 * </p>
	 * 
	 * @param index
	 *            プロパティ<code>index</code>に設定する値
	 */
	public void setIndex(final int index) {
		this.index = index;
	}

	/**
	 * @return the staffType
	 */
	public StaffType getStaffType() {
		return staffType;
	}

	/**
	 * @param staffType
	 *            the staffType to set
	 */
	public void setStaffType(final StaffType staffType) {
		this.staffType = staffType;
	}

	@Column(nullable = false)
	private String explanation;

	@Column(name = "default_page", nullable = false)
	private String defaultPage;

	private boolean used;

	private int index;

	@Enumerated(EnumType.STRING)
	private StaffType staffType;
}
